package com.hospitalmanagementsystem.service;

import com.hospitalmanagementsystem.dto.AppointmentDTO;
import com.hospitalmanagementsystem.dto.AppointmentRequest;
import com.hospitalmanagementsystem.enums.AppointmentStatus;

import java.time.LocalDate;
import java.util.List;

public interface AppointmentService {
    List<AppointmentDTO> getAllAppointments();
    AppointmentDTO getAppointmentById(Long id);
    List<AppointmentDTO> getAppointmentsByPatientId(Long patientId);
    List<AppointmentDTO> getAppointmentsByDoctorId(Long doctorId);
    List<AppointmentDTO> getAppointmentsByDepartmentId(Long departmentId);
    List<AppointmentDTO> getAppointmentsByStatus(AppointmentStatus status);
    List<AppointmentDTO> getAppointmentsByDate(LocalDate date);
    List<AppointmentDTO> getAppointmentsByDateRange(LocalDate startDate, LocalDate endDate);
    
    AppointmentDTO createAppointment(AppointmentRequest request);
    AppointmentDTO updateAppointment(Long id, AppointmentRequest request);
    AppointmentDTO updateAppointmentStatus(Long id, AppointmentStatus status);
    
    void deleteAppointment(Long id);
} 